import { NodeModel } from '@vue-flow/core';
import ButtonNode from "../components/nodes/ButtonNode.vue";

class ButtonNodeModel extends NodeModel {
    // 定义四个连接点的位置（上下左右）
    get sourceHandles() {
        return [
            { id: 'top', position: 'top' },
            { id: 'bottom', position: 'bottom' },
            { id: 'left', position: 'left' },
            { id: 'right', position: 'right' },
        ];
    }

    // 设置节点宽高（影响连接点坐标计算）
    setAttributes() {
        this.with = 120;
        this.height = 60;
    }
}

// 注册自定义节点类型d
VueFlow.registerNodeType('button-node', {
    model: ButtonNodeModel,
    view: ButtonNode, // 自定义视图组件
});